1. Technical Field
This disclosure relates generally to planning and deploying of resource-consuming virtual entities, e.g., virtual machines, in computing environments, e.g., a data center or a “cloud” of distributed computing resources.
2. Background of the Related Art
An emerging information technology (IT) delivery model is cloud computing, by which shared resources, software and information are provided over the Internet to computers and other devices on-demand. Cloud computing can significantly reduce IT costs and complexities while improving workload optimization and service delivery. With this approach, an application instance can be hosted and made available from Internet-based resources that are accessible through a conventional Web browser over HTTP. An example application might be one that provides a common set of messaging functions, such as email, calendaring, contact management, and instant messaging. A user would then access the service directly over the Internet. Using this service, an enterprise would place its email, calendar and/or collaboration infrastructure in the cloud, and an end user would use an appropriate client to access his or her email, or perform a calendar operation.
Cloud compute resources are typically housed in large server farms that run networked applications, typically using a virtualized architecture wherein applications run inside virtual servers, or so-called “virtual machines” (VMs), that are mapped onto physical servers in a data center facility. The virtual machines typically run on top of a hypervisor, which is a control program that allocates physical resources to the virtual machines.
Virtual machine “placement” is the process of distributing a set of virtual machines across multiple physical servers. Preferably, the distribution should satisfy a number of different constraints, namely, the computational requirements of each individual virtual machine (which involves “sizing” of a VM based on its current workload), the computational capacity of the physical machines (which involves, among other things, ensuring that data center SLA violations do not occur), and the utilization of one or more resources within the data center. Optimizing virtual machine placement reduces server and overall operational costs of the facility.
Managing the efficient placement of many virtual machines onto many host machines is a complicated task. A known approach to this problem is to delegate this task to an automated management server that monitors the infrastructure and automatically manipulates the placement as needed, e.g., by moving virtual machines between hosts, suspending/resuming virtual machines, and so forth. An alternative approach, which is described in U.S. Publication No. 2010/0250744, uses a directed graph-based modeling approach to generate a plan for changing a current placement of virtual machines into a given desired (target) placement.
A data center administrator can control the placement process to a certain extent by imposing constraints on the placement process. These constraints, however, are diverse and evolving, and this complicates the placement problem. Often, implementing new data center constraints requires creation of a new placement algorithm or re-formulation of an existing one.
While some of the known approaches do provide useful results, there remains a need to provide enhanced placement methods. This disclosure addresses this need in the art.